草庐IT

Android JsonArray 和 JsonObject 反序列化

全部标签

c++ - 序列化和反序列化位域

我收到了一份文档,其中定义了一组通过串行通信channel传输和接收的消息。我想获取传入消息并将它们反序列化为对象,并序列化我的出站消息。线路上的编码已确定且不可更改,并且由header中的各种位域和不同的有效负载组成,例如,classMessage{intmsg_num:7intdest_addr:4boolSRR:1boolIDE:1intsource_addr:6//...andsoon...}我看了一下使用protobufs,但似乎他们的varint编码方法已经建立。我也看过boost-serialization,但根据我到目前为止所读的内容,那里的编码方式并不完全清楚。那么,

c++ - Boost C++ 跨平台 (Windows & Mac) std::wstring 序列化

我正在为Windows(使用VisualStudio2008)和Mac(使用GCC)构建的程序中使用BoostC++库实现序列化。该程序在大约30个类中使用宽字符串(std::wstring)。根据平台的不同,当我保存到文件时(通过boost::archive::text_woarchive),宽字符串在输出文件中的表示方式不同。在Windows下保存:H*e*l*l*o**W*o*r*l*d*!*...在MacOSX下保存:H***e***l***l***o******W***o***r***l***d***!***...其中*是NULL字符。当我尝试使用Mac构建读取在Window

c++ - 使用指针和非默认构造函数 boost 序列化

您将如何使用boost::serialization序列化/反序列化此类?#includestructFoo{structBar{std::vector*data;//MustpointtoFoo::dataBar(std::vector*d):data(d){}};std::vectordata;std::vectorelements;Foo(){//doverytimeconsumingcalculationtopopulate"data"and"elements"}};当从序列化数据加载对象时,不得执行Foo中的构造函数,但如果对象是默认构造的,则必须评估构造函数。给Bar添加默

c++ - 派生对象的 boost 序列化不调用派生的序列化()

我已经阅读了大量类似的问题,但没有找到答案。我正在使用VisualStudio2010和boost1.47。这是完整的可编译代码:#include"stdafx.h"#include#include#include#include#includeusingnamespacestd;classBaseObject{public:BaseObject(void){};virtual~BaseObject(void){};templatevoidserialize(Archive&ar,constunsignedintversion){/*nothinghappenshere*/};};cl

c++ - GMP有理数如何序列化?

有没有办法以二进制形式序列化GMP有理数?我只看到用于读取/写入FILE的函数,但即使在那里它也是一种文本形式。我可以转换为分子/分母并使用整数函数,但同样只有FILE输出可用。我需要能够获取原始字节或写入C++流。 最佳答案 我想你在找mpz_inp_rawmpz_out_raw(文档:https://gmplib.org/manual/I_002fO-of-Integers.html)完整演示:#include#include#include#includeintmain(){mpq_classoriginal("1731181

c++ - 易于使用的可扩展序列化/编码?

我对数据结构的序列化有疑问。数据结构的序列化有很多可能性(也称为ma​​rshalling或deflating,参见wiki-article)。每一种编程语言、框架、标准或库似乎都有自己的序列化方法。许多人还定义了自己的数据/接口(interface)描述语言(我更喜欢只在代码内部定义的语言依赖数据结构)。仅举几例(参见wiki-article):COMIDL、CORBAIDL、ThriftIDL、googleProtocolBuffer“.proto”、XSD、ASN.1IDL等。其中一些序列化能够生成语言native数据结构和用于序列化和反序列化这些结构的代码。我对这个问题做了一些

c++ - vector 序列化

我正在尝试对vector数据进行二进制序列化。在下面的这个示例中,我序列化为一个字符串,然后反序列化回一个vector,但没有得到与我开始时相同的数据。为什么会这样?vectorv;v.push_back(1);v.push_back(2);v.push_back(3);strings((char*)(&v[0]),3*sizeof(size_t));vectorw(3);strncpy((char*)(&w[0]),s.c_str(),3*sizeof(size_t));for(size_ti=0;i我希望得到输出123而是获取输出100(在gcc-4.5.1上)

c++ - 如何设计一个可序列化的类,使得任何非序列化的属性都会导致编译时错误?

假设您有以下代码:classA{bool_attribute1;};//Arbitrarilyusingstd::string,notthepointofthisquestionstd::stringserialize(constA&);现在开发者在classA中添加了一个新的bool_attribute2,忘记更新serialize函数,导致运行时出现bug.(已经去过那里了吗?)有没有办法把这个问题变成编译时错误?由于C++不支持反射,我觉得这是不可能的,但我可能遗漏了一些东西。 最佳答案 如果您使用的是c++1z,则可以使用结

c++ - 如何序列化共享/弱指针?

我有一个复杂的对象网络,与QSharedPointers和QWeakPointers相连。有没有一种使用Boost.Serialization保存/加载它们的简单方法?到目前为止我有这个:namespaceboost{namespaceserialization{templatevoidsave(Archive&ar,QSharedPointerconst&ptr,unsignedversion){T*sharedPointer=ptr.data();ar&BOOST_SERIALIZATION_NVP(sharedPointer);}templatevoidload(Archive&

Fastjson反序列化漏洞

Fastjson反序列化漏洞目录Fastjson反序列化漏洞一、Fastjson介绍1、什么是fastjson?2、fastjson的优点二、影响范围:三、漏洞原理四、漏洞利用五、漏洞发现六、漏洞修复一、Fastjson介绍1、什么是fastjson?fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。2、fastjson的优点速度快使用广泛测试完备使用简单二、影响范围:fastjson三、漏洞原理fastjson在解析json的过程中,支持使用autoType来实例化某